﻿// ------------------------------------------------------------------------
// 版权信息
// 版权归重庆虫儿飞科技有限公司所有。
// 所有权利保留。
// 官方网站：https://netokit.com
// 许可证信息
// Neto.Kit 项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。
// 许可证的完整文本可以在源代码树根目录中的 LICENSE-APACHE 和 LICENSE-MIT 文件中找到。
// 
// 使用条款
// 使用本代码应遵守相关法律法规和许可证的要求。
// 
// 免责声明
// 对于因使用本代码而产生的任何直接、间接、偶然、特殊或后果性损害，我们不承担任何责任。
// 
// 其他重要信息
// Neto.Kit 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。
// 有关 Neto.Kit 项目的其他详细信息，请参阅位于源代码树根目录中的 COPYRIGHT 和 DISCLAIMER 文件。
// 
// 更多信息
// 请访问 https://netokit.com 获取更多关于 Neto.Kit 项目的许可证和版权信息。
// ------------------------------------------------------------------------

namespace Neto.Core;

/// <summary>
///     上传文件设置
/// </summary>
[Description("上传文件设置")]
public class SysUploadFileSettingDto
{
    /// <summary>
    ///     文件存储类型（0 本地,1:阿里云，2:腾讯云，3:华为云）
    /// </summary>
    [Comment("文件存储类型")]
    public FileStoLocType FileStoLocType { get; set; }

    /// <summary>
    ///     文件保存路径
    /// </summary>
    public string WebUploadFloder { get; set; }

    /// <summary>
    ///     是否限制上传扩展名
    /// </summary>
    public bool IsLimitUploadExtension { get; set; } = true;

    /// <summary>
    ///     是否压缩检测图片是否是真图片，默认不启用，费性能
    /// </summary>
    public bool IsCompressCheckImage { get; set; } = false;

    /// <summary>
    ///     是否启用常见常用文件检测，默认启用
    /// </summary>
    public bool IsFileTypeCheck { get; set; } = true;

    /// <summary>
    ///     是否启用图片压缩
    /// </summary>
    public bool IsImgCompression { get; set; } = true;

    /// <summary>
    ///     图片压缩率，整数，1~100
    /// </summary>
    public int ImgCompressionRatio { get; set; } = 80;

    /// <summary>
    ///     是否生成图片缩略图
    /// </summary>
    public bool IsImgThumbnail { get; set; } = true;

    /// <summary>
    ///     缩略图宽度，高度按比例计算
    /// </summary>
    public int ImgThumbnailWith { get; set; } = 0;

    /// <summary>
    ///     允许上传的文件扩展名
    /// </summary>
    //public List<string> AllowExtensions { get; set; } = new List<string>() { ".csv", ".xls", ".xlsx", ".doc", ".docx", ".pdf", ".jpg", ".png", ".jpeg", ".gif" };
    public string AllowExtensions { get; set; } = ".csv,.xls,.xlsx,.doc,.docx,.pdf,.jpg,.png,.jpeg,.gif";

    /// <summary>
    ///     图片扩展
    /// </summary>
    //public List<string> ImgExtensions { get; set; } = new List<string>() { ".jpg", ".png", ".jpeg", ".gif", ".bmp", ".jfif" };
    public string ImgExtensions { get; set; } = ".jpg,.png,.jpeg,.gif,.bmp,.jfif";

    /// <summary>
    ///     最大文件大小(单位：MB)
    /// </summary>
    public int MaxFileSize { get; set; } = 10;

    #region 阿里云

    /// <summary>
    ///     文件仓库
    /// </summary>
    [Description("文件仓库")]
    [MaxLength(200)]
    public string Aliyun_FileBucketName { get; set; }

    /// <summary>
    ///     阿里云AccessKeyId
    /// </summary>
    [Description("阿里云AccessKeyId")]
    public string Aliyun_AccessKeyId { get; set; }

    /// <summary>
    ///     阿里云AccessKeySecret
    /// </summary>
    [Description("阿里云AccessKeySecret")]
    public string Aliyun_AccessKeySecret { get; set; }

    /// <summary>
    ///     阿里云Endpoint
    ///     就是存储点地址
    /// </summary>
    [Description("阿里云Endpoint")]
    public string Aliyun_Endpoint { get; set; }

    #endregion 阿里云
}